Method of requesting a customized instance of an object using information contained within an existing instance

ABSTRACT

A system for reselling an object in a client-server environment is disclosed. The method and system also enables a user using a client device can order an object, order a customized object, order a composite object, and order a customized composite object. The system includes an object order form handler, an object order handler, a view objects handler, a reseller form handler, a reseller handler, a reseller permission handler, an add object handler and a server database.

CROSS REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. patent application Ser. No.12/247,337, filed Oct. 8, 2008 the entire content and disclosure ofwhich is incorporated herein by reference.

BACKGROUND

The present invention generally relates to e-commerce, and particularly,to improvements to on-line ordering of objects (e.g., hardware (e.g., acar, a boat, etc.), software (e.g., widget (i.e., an element of agraphical user interface such as buttons, icons or scroll bars; a moduleof software for a personalized web page)) and services (e.g., a cleaningservice or gardening service)). More particularly, the present inventionis related to reselling an object and/or to ordering a customization ofan existing instance (e.g., when a book is an object, a copy of the bookis an instance of the object) of an object for a subsequent resale.

A client-server environment refers to a network architecture comprisinga plurality of client devices and one or more of server devices. Theclient devices are defined as requesters of services. The server devicesare defined as providers of the services. The client devices and theserver devices are connected through physical links or wireless links.

In day-to-day activities, people often see an existing instance of anobject (e.g., when a book is an object, a copy of the book is aninstance of the object). Then, a person may want to have the sameinstance of the object (e.g., exactly same copy of the book withidentical attributes (e.g., same author, same publisher, samepublication date, same number of pages, same ISDN number, same coverpage, same price, same format, etc.), or, may want to have a slightlydifferent instance of the object (e.g., a copy of the book with adifferent publication date, different cover page, different publisher,different format, and/or different price), or, may want to have acustomized instance (e.g., a copy of the book with a cover page designedper a request from a customer) of the object. However, ordering acustomized instance (e.g., a copy of the book with a cover page designedper a request from a customer) of the object is not convenient inexisting technology (e.g., e-catalog and on-line shopping). Moreover, itis difficult to find a procedure to order the customized instance of theobject and/or find out whether a customization of the existing instanceof the object is possible or not.

Henson (U.S. Pat. No. 6,167,383) discusses customizing a computer devicevia a user interface. In the user interface, a user can select a memorydevice among a variety of memory devices and/or can select a processoramong a variety of processors. However, Henson does not discuss anyability to customize a software object (e.g., a widget) and a serviceobject (e.g., a gardening service) displayable via a client device(e.g., a desktop or laptop). Furthermore, Henson neither discusses amethod nor a system for reselling (i.e., selling (a product, object orservice) to the public or to a user, as an authorized dealer) an object.

Eckert et al. (U.S. Pat. No. 7,236,947) (hereinafter “Eckert”) discussesthat a computer system receives a purchase request from a first tradingpartner, and in response, automatically selects at least one qualifiedtrading partner among available trading partners, generates a purchaseorder based on the purchase request, and forwards the purchase order tothe selected qualified trading partner. However, Eckert does not discussa customization of an object. Furthermore, Eckert neither discusses amethod or system for reselling an object.

Vaysman et al. (WO 2007/022109 or PCT/US2006/031694) (hereinafter“Vaysman”) discusses methods for generation and usage of unique contentidentifiers that allow users to find and select desired network orlocally stored content or applications. Vaysman further discussesbrowsing content and selecting content. However, Vaysman does notdiscuss a customization of an object. Furthermore, Vaysman neitherdiscusses a method or system for reselling an object.

It would be desirable to provide a system and method for reselling anobject and ordering a customized object in a client-server environmentor a web-based e-commerce infrastructure.

SUMMARY OF THE INVENTION

The present invention is a system and method for reselling an object andcustomizing an object in a client-server environment, where the objectis hardware, software or service. The object can be a composite object(i.e., an object comprising subobjects; e.g., a computer comprising amemory device, a processor, a hard disk, etc.).

In one embodiment, there is provided a server device for reselling anobject in a client-server environment including a plurality of clientdevices comprising:

a reseller form handler for receiving from a client device a request ofa reseller form corresponding to the object, generating the resellerform corresponding to the object and providing the reseller form to theclient device;

a reseller handler for receiving a request to be a reseller from theclient device that completed the reseller form and forwarding therequest to be the reseller to an original seller; and a resellerpermission handler for receiving a determination of the request to bethe reseller from the original seller, storing the determination in adatabase and sending the determination to the client device, wherein ifthe determination indicates an approval of the request to be thereseller, a user of the client device is able to resell the object toother users at other client devices.

In another embodiment, there is provided a method in a server device forreselling an object in a client-server environment including a pluralityof client devices comprising:

receiving from a client device a request of a reseller formcorresponding to the object, generating the reseller form correspondingto the object and providing the reseller form to the client device;

receiving a request to be a reseller from the client device thatcompleted the reseller form and forwarding the request to be thereseller to an original seller; and

receiving a determination of the request to be the reseller from theoriginal seller, storing the determination in a database and sending thedetermination to the client device, wherein if the determinationindicates an approval of the request to be the reseller, a user of theclient device is able to resell the object to other users at otherclient devices.

In a further embodiment, an object order form is provided to the clientdevice upon a request. After completing the object order form, theclient device submits an order of an object, a customized object and/ora composite object. The order from the client device is sent to aseller.

In a further embodiment, the object order form is provided to the clientdevice via a web site (e.g., FTP site), an email (e.g., an attachment),a phone call (e.g., a conversation regarding contents or requirements ofthe object order from), a fax, an instant messaging, a postal mail and acarrier service (e.g., UPS™, FedEx™, DHL®).

The present invention has at least following advantages over traditionalsolutions:

-   -   A user can order a customized instance of an object by        specifying how the user wants the customization is done.    -   A user can resell an (customized) instance of an object which        the user purchased before, after obtaining a permission to        resell the instance of the object.    -   A user can order a customization of a composite object.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are included to provide a furtherunderstanding of the present invention, and are incorporated in andconstitute a part of this specification. The drawings illustrateembodiments of the invention and, together with the description, serveto explain the principles of the invention. In the drawings,

FIG. 1 depicts an example of invoking an object order form to order acustomized object.

FIG. 2 depicts a client-server environment where the present inventionis employed.

FIG. 3 depicts a block diagram of a server device in one embodiment ofthe present invention.

FIG. 4 depicts a flow chart of a methodology which a server deviceemploys in one embodiment of the present invention.

FIG. 5 depicts a flow chart of a methodology which an object orderhandler employs in one embodiment of the present invention.

FIG. 6 depicts a flow chart of obtaining a reselling permission (i.e.,an original seller allows a current owner of an object to resell theobject to other users) in one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

An object in the present invention refers to hardware (e.g., atelevision, a radio, a cellular phone, etc.), software (e.g., a widget)and/or services (e.g., a mail forwarding service). In a context of ahardware object, an instance of the object means a same physicaldevice/machine corresponding to the object. For example, when a hardwareobject is an Apple® iPhone™, the instance of the object is anotherApple® iPhone™ with same software and hardware configuration of theprior iPhone™. In a context of a software object, an instance of theobject means a same reproduction of the object. For example, when asoftware object is an icon on a web page, an instance of the object isan identical imitation of the icon with same attributes (e.g., samelength, same color, same author/creator, same shape, etc.). In a contextof a service object, an instance of the object refers to performing aduplicate task or act pertaining to the object. For example, a serviceobject is a gardening service, an instance of the object is anothergardening service with same properties or characteristics (e.g.,identical step(s), performances, task(s), cost(s), labor(s),duration(s), energy consumption(s)) of the prior gardening service. InObject Oriented Programming (OOP), a Class in OPP refers to an object inthe present invention. An Object in OPP refers to an instance of theobject (e.g., Class in OPP) in the present invention. In one embodimentof the present invention, the object refers to a name or an identity ofhardware, software and/or a service. The instance of the object in thepresent invention refers to an actual realization or implementation of acorresponding hardware, software and/or service.

FIG. 1 illustrates an exemplary embodiment of the present invention. Inthis exemplary embodiment, a web page 100 created by a first userincludes customizable objects (e.g., a highlighted object 110 withdotted lines) of which a viewer of the web page can select and submit anorder to purchase an object through the web page, an email, a phonecall, a fax, an instant messaging, a postal mail and/or a carrierservice.

Continuing on this exemplary embodiment, a second user visits the webpage and has an interest on the customizable objects posted on the webpage. To see which objects are orderable, the second user clicks a “viewobjects” check box 130 provided in the web page 100. Then, objects(e.g., an object 110) that can be ordered are visibly distinguished(e.g., outlined in dotted lines). The second user is then enabled toright-click on an object (e.g., an object 110) that is visiblydistinguished. Then, a pop-up menu (not shown) appears and the seconduser selects an “order object” link (not shown) on the pop-up menu. As aresult of selecting the “order object” link, an object order form 120appears as shown in FIG. 1. Via the object order form 120, the seconduser can specify how that user wants to customize the object (e.g., bychanging colors, size, shape, length, text, etc.). If the object orderform 120 is a blank page, the second user may enter a description of howthe second user wants to customize the object. If the object order form120 has drop-down menu(s), the second user selects his preferences onthe drop-down menus. In this exemplary embodiment, the object order form120 includes a multiple fields such as seller contact information,customization options and a message box (i.e., a text entering field).

The seller contact information (the seller is the first user who createdthe web page 100, a current owner of the object and/or acreator/designer of the object) comprises, but is not limited toinclude, the seller's email address, phone number, fax number and officeaddress. The customization options comprise, but are not limited toinclude: customizing text, customizing color, customizing shape,customizing font and customizing length or other dimension of the object(e.g., widget). In the message box, a user (e.g., the second user) candescribe his additional request (e.g., a delivery date, a fast order) orattach a reference document that can help the seller when customizingthe object. The customization options can include a variety attributesof the object that can be customized. The attributes comprise, but arenot limited to include: color (e.g., a color customization 160 in FIG.1), size, shape, length, text (e.g., a text customization in FIG. 1) andfont. The attributes that can be customized may be selected by an objectcreator, object designer or a seller. Customizing an attribute of anobject can have a flat rate (i.e., a seller charges a same price forcustomizing an attribute of an object regardless of any attribute) orcan have flexible rate (i.e., a seller determines a price forcustomizing an attribute of an object depending on a difficulty of thecustomization). The object order form 120 may reflect a cost forcustomizing the object based on the flat rate or flexible rate. The coston the object order form 120 may include delivery fee, labor fee, tipsand taxes. The cost on the object order form 120 can be determined by aseller, an object creator (i.e., a person who created the object to becustomized), an object designer (i.e., a person who designed the objectto be customized), and/or a reseller (i.e., a person who wants to resellthe object).

Continuing on this exemplary embodiment, after completing the objectorder form 120, the second user pushes/selects/clicks an order button140. Upon pushing/selecting/clicking the order button 140, the seconduser may be directed to a payment section (e.g., a section where a usercan pay a cost for customizing an object), so he can make a payment forcustomizing the object. The payment section can be connected to anexisting payment service (e.g., PayPal®) or can be a stand-alone webpage/site for enabling a user (e.g., the second user) to make a payment.At the payment section, a user pays using a money order, credit card,debit card, traveler's check etc. After the second user making a paymentat the payment section, the customized object is subsequently deliveredto the second user by using one or more of: an email (e.g., anattachment), postal mail and carrier service. In one embodiment, afterthe second user making the payment, the customized object can bedelivered to the second user or a client device that the second user isusing, e.g., a couple of days or hours later, because it can take timesto customize the object. If the customized object is retrieved from adatabase storing the object, the customized object can be immediatelydelivered to the second user upon confirming the second user made apayment. After receiving the customized object, the second user can usethe customized object in any manner as desired. If the customized objecthas a restriction of usages, the customized object can includeinformation (e.g., document) of the restriction of usages. When thesecond user wants to sell the customized object, the second user mayfirst need to obtain a permission to resell from an original sellerand/or an object creator (i.e., a person who customized the object).Upon receiving a permission to resell the customized object, the seconduser can offer the customized object for sale online (e.g., Ebay®)and/or off-line (e.g., a supermarket in the second user's neighborhood).

Some sellers or object creators may allow object purchasers (i.e., aperson who bought a customized object) to resell the customized object.When allowing reselling the customized objects, the seller(s) and/orobject creator(s) may give up a commission (i.e., require no commission)or, require a commission (i.e., a fee or percentage (of the resellingprice) to be assigned to the object seller(s) and/or the objectcreator(s) upon reselling the object). If the customized objectcomprises subobjects (i.e., parts of a component; subparts; objects usedfor constructing an object), the seller(s) and object creator(s) mayrequire a commission for every subobject in the customized object. Thecustomized object may include a unique ID (not shown) such as RFID(Radio Frequency Identification), barcode and URI (Uniform ResourceIdentifier). Therefore, by utilizing the unique ID (e.g., RFID tag) onthe customized object, the seller(s) and object creator(s) can tracewhere the customized object is used, applied, and/or resold. The uniqueID on a customized object can provide information of a change ofownership of the customized object to the seller(s) and/or the objectcreator(s), because the unique ID utilizing RFID technology can reportthe seller(s) and/or the object creator(s) when a customized object istransmitted or transported to a new place. Therefore, if the customizedobject is resold and/or redesigned without a permission of the seller(s)and/or object creator(s), the seller(s) and/or object creator(s) cancontact a current owner of the customized object or a previous owner ofthe customized object to request a commission of reselling thecustomized object or to notify an improper ownership transfer due tounauthorized reselling. The customized object can have a lock to preventa further customization. In one embodiment, the lock is implemented assoftware, hardware or a combination of them based on anencryption/description technology (e.g., DES (Data Encryption Standard),Nimbus, TEA (Tiny Encryption Algorithm)). The lock can be configured tobe released only by the seller(s) and/or the object creator(s), who knowkeys or passwords of the lock. The customized object can have a featurefor disablement of the customized object. When the seller(s) and/orobject creator(s) receives notifications that an unique ID on acustomized object represents a user's unauthorized reselling thecustomized object, the seller(s) and/or the object creator(s) canactivate the disablement feature (e.g., deleting a customized widgetupon detecting illegal ownership transfer, activating/spreading virus ormalicious codes upon detecting illegal ownership transfer of acustomized widget, locking all vehicle doors upon detecting illegalownership transfer of a customized vehicle) in the customized object.

When a user (e.g., a current owner of an object) wants to be a resellerof an object (e.g., an existing object or a customized object), the usersends a request to be a reseller of the object to a server device (e.g.,a computing device including a database storing objects, contactinformation of sellers of objects, contact information of owners ofobjects, contact information of creators of objects) associated with theobject. In one embodiment, the user directly contact the (original)seller and/or the object creator, if the user finds out contactinformation (e.g., URI) of the seller and/or the object creator of theobject which the user wants to resell. When the server device receivesthe request to be a reseller (not shown) of the object, the serverdevice forwards the request to be reseller to the (original) sellerand/or the object creator. In one embodiment, the request to be resellerincludes, but is not limited to include, a description of the object(e.g., when that user (e.g., a current owner of the object) firstpurchased the object, a unique ID of the object) and contact informationof the user. When the request to be reseller is delivered to the(original) seller and/or the object creator, the seller and/or theobject creator determines whether to grant the user a permission to be areseller or not. In one embodiment, the request to be the resellerincludes information of a commission (i.e., the (original) seller and/orthe object creator receives a certain portion of reselling price). Basedon the commission information in the request to be reseller, the sellersand/or object creators determine whether the permission is granted ornot. In another embodiment, the seller and/or object creator specifies acommission amount (e.g., 5% of reselling price) when granting thepermission. The specified commission amount is stored in a database inthe server device associated with a unique ID of the object. In oneembodiment, granting a user (e.g., a current owner of the object) apermission to resell an object includes transferring a copyrightownership, trademark ownership or intellectual property ownershipassociated with the object from the (original) seller and/or the objectcreator to the user (e.g., the current owner of the object).

In one embodiment of the present invention, a user can order a compositeobject that is composed of multiple separate orderable subobjects. Thesubobjects can be an existing objects and/or customized objects. In oneexemplary embodiment, the third user posted an orderable flash animationmovie D composed of three short flash animation movies (e.g., ananimation movie A, an animation movie B, an animation movie C) on hisweb site. The third user is a creator of the animation movies A and B.The fourth user is a creator of the animation movie C. The third user isalso a composer who combined the three animation movies A, B and C tocreate the orderable animation movie D. When the second user visits thethird user's web site, the second user becomes interested in orderingthe flash animation movie D. However, the second user wants a change atthe first part of the movie D and a last part of the movie D.

Continuing this exemplary embodiment, the second user issues an order ofthe movie D with the change of the first part and the last part. Thesecond user may issue the order of the movie D by clicking an orderbutton (not shown) next to the movie D or contacting the third user byemail, a phone, an Instant Messaging, a FAX or a carrier service. Whenthe second user clicks the order button, a composite object order form,which is similar to the order form 102 of FIG. 1, may appear. Thecomposite object order form comprises, but is not limited to include,the third user's contact information (e.g., email address, phone number,FAX number, etc.), customization options (e.g., deleting/modifying someportions of the movie D) and a message box (i.e., a blank box where thesecond user can describes an additional request). The second usercompletes the composite object order form with a request to changebackground music at the first part of the movie D and a request to makelast 3 minutes of the movie D as black and white images. After thesecond user completes the composite object order form, by clicking a“done” button (not shown) on the composite object order form, thecomposite object order form is delivered to the third user. In anotherembodiment, the second user can send the completed composite objectorder form to the third user by an email, postal mail, FAX and a carrierservice.

Upon receiving the composite object order form from the second user, thethird user recognizes that changing background music at the first partof the movie D refers to changing background music of the animationmovie A. The third user also recognizes making black and white imagesfor last 3 minutes of the movie D refers to making the animation movie Cas a black and white movie. Because the third user is the creator of theanimation movie A, the third user starts to work on changing backgroundmusic of the animation movie A. However, because the fourth user iscreator of the animation movie C, The third user contacts the fourthuser to request modification on the animation movie C.

In another exemplary embodiment, there is no need of an interventionfrom a composer the third user. When the composite object order form iscompleted, the completed object order form is transmitted to a serverdevice which manages customizations of subobjects (e.g., three animationmovies A, B and C) and contact information of creators and a composer.By parsing and analyzing contents of the completed composite objectorder form from the third user, the server device finds out thatbackground music of the animation movie A needs to be changed and findsout that the animation movie C needs to be a black and white movie.Then, the server device contacts (e.g., via email or FAX) the third userwith a request. The request sent to the third user provides the requestto change the background music in the animation movie A, to wait for amodification of the animation movie C from the fourth user and tocombine the changed movie A′, the original movie B and the modifiedmovie C′ to create a customized flash animation movie D′. The serverdevice also contacts the fourth user with a request. The request sent tothe fourth user may describe making the animation movie C as a black andwhite movie and then sending the black and white movie to the thirduser.

After the third user completes changing the background music in theanimation movie A and receives the black and white movie from the fourthuser, the third user combines the changed movie A′ (an animation movie Awith a different background music), the animation movie B and the blackand white movie (a black and white movie of the animation movie C) fromthe fourth user to create a customized flash animation movie D′ based onThe second user's completed composite object order form. Then, thecustomized flash animation movie D′ is directly delivered to the seconduser from the third user via an email, a postal mail and a carrierservice. In another exemplary embodiment, the third user sends thecustomized flash animation movie D′ to the server device. Then, theserver device assigns a unique ID on the customized flash animationmovie D′, stores the movie D′ in a database, and sends the movie D′ tothe third user via an email or an instant messaging.

In another exemplary embodiment, the third user can make a modificationon the animation movie C, if the fourth user issues a permission to thethird user to make a change on the animation movie C. In a furtherexemplary embodiment, if the second user wants to resell the customizedflash animation movie D′, the second user accesses the server deviceassociated with the unique ID (e.g., URI) and requests a permission toresell the animation movie D′. Then, the server device will forward arequest to be a reseller to the third user who is the creator of theanimation movie A′ and the animation movie B and the composer and thefourth user who is the creator of the black and white movie. Uponreceiving the permission to resell from the third user and the fourthuser, the server device calculates a proper commission (e.g., a creatorreceives 5% of reselling price, a composer receives 3% of resellingprice) for each creator and the composer. When sending permission toresell the animation movie D′ (e.g., a composite object), the serverdevice informs the second user of commissions for the third user and thefourth user.

In one embodiment, an object (e.g., an existing object, a customizedobject, a composite object, a subobject) includes a unique ID (e.g., abarcode, a URI, a RFID). Through the unique ID (e.g., accessing the URIon the object), a user is enabled to communicate with a seller of theobject, a current owner of the object, and/or a creator of the objectand how to request an instance of the object.

In one embodiment, there is a server device which stores and accessesoptional information of an object which is accessed via a unique IDstored as a part of the object. The optional information comprises, butis not limited to include, a cost of an instance of the object,possibility of customizations of the object, whether the object can beresold, how much a reseller needs to provide an original seller and/ anobject creator as commissions, a reseller ID (e.g., an email address ofthe reseller, a cellular phone number of the reseller), a paymentservice (i.e., enabling a person to pay the cost to purchase the objectby a credit card, a debit card, etc.) and unique IDs of subobjects ifthe object is a composite object.

In one embodiment of the present invention, the server device (i.e., acomputing device managing a database of objects, sellers, currentowners, etc.) generates an object order form for an instance of theobject based on the unique ID for an object as shown FIG. 1 uponreceiving a request of the object order form from a user (e.g.,customer) or a client device that the user is operating. After the usercompletes the object order form and provides the completed object orderform to the server device, the server device delivers an order of theobject (e.g., the completed object order form) to a registered sellervia an instant messaging, an email, a postal mail, a carrier service, aphone call, a FAX, etc. The object order form may use the optionalinformation associated with the unique ID of the object and may includeoptional customizations (e.g., changing colors, texts, sounds, etc.) ofthe object.

One embodiment of the present invention allows a current owner of anobject to become a reseller of the object. Upon receiving a request tobe a reseller of the object, a reseller request form (i.e., a form thata client needs to fill out to be a reseller of the object) associatedwith the object is retrieved or generated from the server device and isdelivered to the current owner via one or more of an email, a FAX, apostal mail, an instant messaging and a carrier service. The resellerrequest form may include commission information (e.g., how much thereseller needs to pay to an original seller when reselling the object).This commission information may be stored in the database associatedwith a unique ID of the object. When the server device receives acompleted reseller request form, the server device also retrieves orgenerates a reseller request (i.e., a request to be a reseller) based onthe completed reseller request form and delivers the reseller request tothe original seller. In one embodiment, the server devices forwards thecompleted reseller request form to the original seller. When theoriginal seller approves the reseller request, the server devicegenerates a reseller permission form (i.e., a form acknowledging anapproval of a request to be a reseller), sends the reseller permissionform to the current owner of the object, and stores the resellerpermission form and the reseller's information (e.g., contactinformation of the current owner of the object) in a database associatedwith the unique ID of the object.

In one embodiment of the present invention, an object can be composed ofseveral subobjects. This object (i.e., an object composed of severalsubobjects) is called as a composite object. When a composite object isordered from a client, a server device managing the composite objectgenerates separate orders for each subobject based on a unique ID ineach subobject. The server device also generates an order for combiningeach subobject to create the composite object. Then the server devicedelivers orders for subobjects to corresponding sellers whose contactinformation can be found in database(s) associated with unique IDs ofthe subobjects. The server device also delivers an order for combiningeach subobject to a composer whose contact information can be in adatabase associated with a unique ID of the composite object.

FIG. 2 illustrates a client-server environment where one embodiment ofthe present inventions is employed. A user 1040 utilizes a client device1030 to communicate with a server device 1010 via a network 1020.Although there is one client device 1030 in FIG. 1, there can be aplurality of client devices and a plurality of server devices. Theplurality of client devices and the plurality of server devices can beconnected through a plurality of networks. The client device 1030 is acomputing device or a computing machine (e.g., a personal computer, adesktop computer, a laptop computer (e.g., IBM® ThinkPad®), a mainframe,a smart phone (e.g., Apple® iPhone®), a PDA and IPTV (Internet ProtocolTelevision)) including a web browser (e.g., Microsoft® InternetExplorer®, Apple® Safari®). The user 1040 is an ordinary person whoknows how to use the computing device/machine and knows how to accessInternet but may not be a programmer. The server device 1010 is also acomputing device or a computing machine (e.g., a personal computer, adesktop computer, a laptop computer (e.g., IBM® ThinkPad®), a mainframeand a workstation). In one embodiment, the server device includes astorage device for a database. In one embodiment the server device 1010acts as a web server (e.g., HTTP server (e.g., Apache HTTP server) orUDP (User Datagram Protocol) server). The client device 1030 acts as aweb client (e.g., HTTP client or UDP client). The network 1020 is one ormore of: Internet, an internal intranet, a wireless network, a wirednetwork, ATM (Asynchronous Transfer Mode) network, a peer-to-peernetwork, a publish/subscribe network, an overlay network, etc. Theserver device 1010 is described in detail with respect to FIGS. 3-5.

FIG. 3 illustrates a system diagram of the server device in oneembodiment of the present invention. The server device 1010 comprises,but is not limited to include, a processor 2000 (Intel® Core™ 2processor, IBM® PowerPC® processor, IBM® Cell Processor), a storagedevice 2010 (e.g., optical storage device (e.g., CD-ROM), solid-statedrive (SSD), magnetic storage device (i.e., hard disk drive)), a datanetwork interface card 2020 (e.g., Ethernet over coax cable, wireless IPand VoIP (e.g., DVG-1402S Broadband Phone Service VoIP Router fromD-Link®), an operating system (not shown) (e.g., Windows Server®, Linuxoperating system, SUN Microsystems Solaris®, FreeBSD), sever applicationsuite (not shown) (e.g., database, http server, file and printersharing), a memory 2030 (e.g., SRAM, DRAM, SDRAM) and a system logic2040 (i.e., a logic for managing ordering an object, reselling anobject, customizing an object, etc.). The system logic 2040 comprises anobject order form handler 2050, an object order handler 2060, a viewobjects handler 2070, a request reseller form handler 2080, a request tobe reseller handler 2090, a reseller permission handler 2100, an addobject handler 2110 and a server database (e.g., Oracle® database). FIG.3 depicts that the handlers 2050-2110 and the server database 2120 areimplemented in the memory 2030 and are run by the processor 2000.

In one embodiment, the handlers 2050-2110 in the system logic 2040 areimplemented as hardware on a reconfigurable hardware (e.g., FPGA (FieldProgrammable Gate Array) or CPLD (Complex Programmable Logic Device))using a hardware description language (Verilog, VHDL, Handel-C, orSystem C). In another embodiment, the handlers 2050-2110 in the systemlogic 2040 are implemented on a semiconductor chip (e.g., ASIC(Application-Specific Integrated Circuit)) using a semi custom designmethodology (i.e., designing a chip using standard cells and a hardwaredescription language).

In one embodiment, the handlers 2050-2110 in the system logic 2040 areimplemented as software using a programming language (e.g., C, C++,Java, .NET, etc.). In one embodiment, the handlers 2050-2110 in thesystem logic 2040 are recorded in a computer recordable medium (e.g., CD(Compact Disk), DVD (Digital Versatile Disc), HDD (Hard Disk Drive)) asan instruction (e.g., a machine language or assembly language) that isrun by a processor (e.g., Intel ® Pentium®, IBM® Power PC®, AMD®Operon®).

In one embodiment, the handlers 2050-2110 in the system logic 2040 areimplemented as hardware through a computing device (e.g., a serverdevice 1010) by being run in the computing device. The computing devicecomprises, but not limited to include, processor(s) 2000, memory(s)2030, display device(s) (not shown), input/output device(s) (not shown)and network interface(s) 2020.

The view objects handler 2070 receives a request of viewing an objectfrom a client device. Then, the view objects handler 2070 finds theobject in a web page and modifies the web page by adding a mark-up(e.g., a visually distinguishable marks, lines or symbols; e.g., dottedlines; e.g., an object 110 being distinguished over other objectsbecause of dotted lines) on objects to indicate the mark-up objects(i.e., objects having the mark-up; an object 110 in FIG. 1) can beordered, customized or resold. In one embodiment, each different mark-upis used to distinguish an orderable object, an orderable andcustomizable object and an orderable customizable and resalable object.In one embodiment, the mark-up includes information (e.g., objectID,sellerID) necessary for ordering an object associated with the mark-up.In one embodiment, the mark-ups are pre-defined by seller(s) of theobjects. The modified web page with mark-up(s) is provided from the viewobjects handler 2070 to the client device which sent the request ofviewing an object.

In one embodiment, the view objects handler 2070 receives a web page URI(e.g., Uniform Resource Locator (URL)) as an input from a userassociated with a client device. The URI may be retrieved from a uniqueID of an object. After receiving the URI from the user through theclient device, the view objects handler 2070 finds all objects in theURI and adds a mark-up on objects to distinguish resalable objects andnon-resalable (i.e., not being able to be resold) objects. Then, theuser through the client device can identify what is a resalable objectand what is a non-resalable object by visiting a web page correspondingto the URI.

The request reseller form handler (reseller form handler) 2080 receivesa request of a reseller form (i.e., a form that needs to be filled outby a user (e.g., a current owner of an object) who wants to be areseller of an object) from a client device (e.g., client device 1030)being operated by a user (e.g., a user 1040). Upon receiving the requestof the reseller form, the reseller form handler 2080 generates thereseller form associated with the object whose current owner wants to bea reseller. Then, the reseller form handler 2080 provides the generatedreseller form to the client device. In one embodiment, the reseller formhandler 2080 receives an objectID (i.e., a unique ID of an object whosecurrent owner wants to be a reseller) and a sellerID (i.e., anIdentification number (e.g., a phone number, social security number, anemail address) of an original seller (i.e., a seller who sold the objectat the first time, who has a right to sell the object to other people,and who has a right to modify the object) of the object) as inputs fromthe client device. In another embodiment, the sellerID is retrieved froma database (e.g., a server database 2120) associated with the objectID,when the reseller form handler 2080 accesses the database with theobjectID. Then, the reseller form handler 2080 generates a reseller formbased on the objectID and the sellerID.

In a further embodiment, an original seller makes a reseller form foreach object that can be resold and stores the reseller form in adatabase (e.g., a server database 2120). Upon receiving the objectID andthe sellerID as inputs, the reseller form handler 2080 accesses thedatabase and retrieves a stored reseller form associated with theobjectID and/or the sellerID. Then, the reseller form handler 2080provides the retrieved reseller form to the client device being operatedby the user. In another embodiment, the view object handler 2070 adds amark-up on an object that can be customized and/or that can be resold.The mark-up includes a reseller form for each object that can be resold.Upon receiving a request of a reseller form, the reseller form handler2080 automatically obtains a reseller form from a mark-up of an objectof which a request of a reseller form is received. Then, the resellerform handler 2080 provides the reseller form to the client device.

FIG. 6 illustrates a flow chart of obtaining a reselling permission froman original seller. Upon receiving the reseller form from the resellerform handler 2080, the client device completes the reseller formgenerated from the reseller form handler 2080 at step 5000 and submitsthe completed reseller form (i.e., a request to be reseller) to thereseller handler (the request to be reseller handler) 2090 at step 5010.Then, the reseller handler 2090 acknowledges to the client device that arequest to be a reseller has been submitted from the client device. Theacknowledgement from the reseller handler 2090 comprises, but is notlimited to include: an original seller's information (e.g., name, phonenumber, email address, mailing address), a requester's information(i.e., the requester refers to the client device of the user who submitsthe completed reseller form to the reseller handler 2090; e.g., name,phone number, email address and mailing address of the user),information (e.g., objectID) of the object (i.e., an object thatrequester wants to resell), etc. In one embodiment, the reseller handler2090 receives a request to be a reseller from the client device (e.g.,client device 1030) that completed the reseller form. In thisembodiment, the request to be reseller is a summary of contents of thatcompleted reseller form. The request to be reseller comprises, but isnot limited to include: an original seller's information (e.g., name,phone number, email address, mailing address), a requester's information(i.e., the requester refers to the client device of the user who submitsthe completed reseller form to the reseller handler 2090; e.g., name,phone number, email address and mailing address of the user),information (e.g., objectID) of the object (i.e., an object thatrequester wants to resell), etc.

After receiving the request to be a reseller from the client device, atstep 5020, the reseller handler 2090 forwards the request to be areseller to the original seller via an email, a postal mail, an instantmessaging, a FAX, a phone call and a carrier service. In one embodiment,the reseller handler 2090 receives a requesterID (i.e., anidentification associated with the requester who wants to be a reseller;e.g., a phone number, email address and social security number of therequester), an objectID and a sellerID as inputs. These inputs areprovided from the client device and/or the reseller form handler 2080.As an output, the reseller handler 2090 sends a message (i.e., a messagedescribing the requester associated with the requesterID wants to be areseller of the object associated with the objectID) to the originalseller associated with the sellerID.

Upon receiving the message from the reseller handler 2090, at step 5030,the original seller determines whether the user of the client device canbe a reseller of the object or not, based on a copyright of the objector commissions that the requester would provide upon reselling theobject. At step 5040, the determination of the original seller isprovided to the reseller permission handler 2100 via an email, a postalmail, an instant messaging, a FAX, a phone call and a carrier service.After receiving the determination from the original seller, at step5050, the reseller permission handler 2100 stores the determination in adatabase (e.g., a server database 2120) associated with the objectID andforwards the determination to the client device (e.g., the client deviceassociated with requesterID). If the determination indicates an approvalto be a reseller, at step 5060, the user (i.e., a person associated withrequesterID) of the client device can resell the object (i.e., an objectassociated with the objectID) to other users. In one embodiment, theother users also operate computing devices. The original seller alsooperates a computing device. If the determination indicates adisapproval to be a reseller, the user cannot resell the object. Otherusers can purchase the object only through the original seller. In oneembodiment, when the original seller determines the user can resell theobject, the original seller transfers a copyright ownership, trademarkownership or intellectual property ownership associated with the objectfrom the original seller to the user.

In one embodiment, the reseller handler 2090 forwards the request to bethe reseller (e.g., a completed reseller form) from the client device tothe reseller permission handler 2100 along with requesterID, objectIDand sellerID. Then, the reseller permission handler 2100 determineswhether the request to be the reseller can be accepted or not withoutcontacting the original seller associated with the sellerID. Uponreceiving the request to be the reseller, the reseller permissionhandler 2100 access a database associated with the objectID andretrieves information of whether the original seller allows resellingthe object associated with the objectID. Then, the reseller permissionhandler 2100 provides the retrieved information to the client deviceassociated with the requesterID.

Returning to FIG. 3, the object order form handler 2050 receives arequest of an object order form associated with an object from a clientdevice associated with a user. In one embodiment, the object is found inthe modified web page provided from the view objects handler 2070 to theclient device. Upon receiving the request of the object order formassociated with object, the object order form handler 2050 generates theobject order form associated with the object (e.g., by retrieving theobject order form from a database associated with the object). Then, theobject order form handler 2050 sends the object order form to (the userof) the client device via a web site (e.g., FTP site), an email, a phonecall, a FAX, an instant messaging, a postal mail, a carrier service,etc. In one embodiment, the object order form (e.g., FIG. 1 an objectorder form 120) specifies customizations (e.g., changing attributes ofthe object) of the object, e.g., a software object (e.g., widget) in theembodiment illustrated. The attributes of the object comprises, but isnot limited to include, a color, shape, text, length, size, font, etc.In one embodiment, the user through the client device provides his/herinformation (e.g., requesterID) and information associated with theobject (e.g., objectID) to the object order form handler 2050. Then theobject order form handler 2050 generates an object order form based oninformation of a seller of the object (e.g., an email address, phonenumber and/or address of the seller), information of the user of theclient device (e.g., an email address, phone number and/or address ofthe user) and information (e.g., an unique ID) of the object. Theinformation of the seller can be retrieved from a database (e.g., aserver database 2120) associated with the sellerID and/or the objectID.The information of the user can be retrieved from a database (e.g., aserver database 2120) associated with the requesterID. In a furtherembodiment, the object order form further includes information of atemplate (e.g., a general style) of the object, a current owner of theobject, a price of the object, other instances of the object (e.g.,other customized instances of the object) and/or a version of theobject.

In one embodiment, the object order form handler 2050 receives anobjectID and a sellerID as inputs. The objectID is provided from aclient device who viewed the object (an object associated with theobjectID) in the modified web page provided from the view objectshandler 2070. When the client device provides the objectID to the objectorder form handler 2050, the object order form handler 2050 accesses adatabase associated with the objectID to retrieve a correspondingsellerID. After obtaining the objectID and the sellerID, the objectorder form handler 2050 retrieves an object order form from the databaseassociated with objectID and/or the sellerID and forwards the objectorder form to the client device.

After the client device completes the object order form associated withobject, the client device submits the completed object order form to theobject order handler 2060. The object order handler 2060 treats thecompleted object order form as an order of the object. Then, the objectorder handler 2060 forwards the completed object order form to a seller(e.g., a reseller or an original seller) of the object. In oneembodiment, when the client device completes the object order form ofthe object, an order of the object is issued from the client device(e.g., by clicking “order” button (e.g., an order button 140 in FIG. 1)on the object order form) and then the order of the object is providedto the object order handler 2060. In one embodiment, the order of theobject is generated by parsing and analyzing the completed object orderform using a compiler technology. After receiving the order of theobject from the client device, the object order handler 2060 sends theorder of the object to a corresponding seller via a web site (e.g., FTPsite), an email, a FAX, an instant messaging, a postal mail and/or acarrier service. The corresponding seller can be found in the mark-up onthe object in the modified web page provided from the view objectshandler 2070. The corresponding seller can be found in a databaseassociated with the object.

In one embodiment, the object order handler 2060 receives an objectIDcorresponding to the object, a description of customizations,requesterID and a sellerID as inputs. In one embodiment, the objectorder handler 2060 receives the completed object order form thatincludes the objectID, the description of customization, requesterID andthe sellerID. Then, the object order handler 2060 sends an order of theobject based on the completed object order form to a seller associatedwith the sellerID.

The add object handler 2110 receives an object, an objectID associatedwith the object, information (e.g., name, phone number, email address,mailing address) of a seller and a sellerID associated with the selleras inputs from the seller associated with the sellerID. In oneembodiment, the add object handler 2110 further receives optionalproperties (e.g., whether a customization is possible; which attributes(e.g., colors, shapes, texts, etc.) of the object can be customized) ofan object associated with the objectID from the seller. In a furtherembodiment, when the object associated with the objectID is a compositeobject (e.g., an object comprising subobjects), the add object handler2110 additionally receives objectIDs and sellerIDs of subobjects of thecomposite object as inputs. When the add object handler 2110 receives anobject (e.g., a customized object, an existing object or a compositeobject) from the seller of the object, the add object handler 2110 addsthe object (i.e., the object provide from the seller) associated theobjectID and the sellerID to a database associated with the objectIDand/or the sellerID. When adding the object to the database, the addobject handler 2110 may also add the information of the seller and theoptional properties of the object into the database associated with theobjectID and/or the sellerID. If the added object is a composite object,the add object handler 2110 may also enter objectIDs and sellerIDs ofthe subobjects into the database associated with the objectID of thecomposite object.

When a customized instance of the object is created or designed by theseller per a request from a customer, the add object handler 2110 addsthe customized instance of the object to the database associated withthe objectID of the object. In one embodiment, when the customizedinstance of the object is entered to the database, the add objectshandler 2110 also adds a description of the customized instance (e.g.,what attributes has been changed from an original instance of theobject; which subobject has been changed if the object was a compositeobject), a price of the customized instance and/or a property ofreselling (e.g., whether an owner of the customized instance can resellthe customized instance).

When a current owner of the object obtains a permission to be a resellerof an object from an original seller, the add object handler 2110 addsthe permission into the database associated with the object. Then, theadd object handler 2110 provides a new sellerID to the current owner ofthe object who obtains a right to resell the object. In one embodiment,the permission (i.e., the permission added to the database) includescommission information (e.g., 5% of reselling price is assigned to anoriginal seller) of an original seller.

The server database is a database management system (e.g., Oracle®, IBM®DB 2™, IBM® Informix®). The server database provides a creation,deletion and modification of persistent data (e.g., object beingordered, object being customized, object being resold) and is accessedby the handlers 2050-2110. In one embodiment, the server databaseincludes a separate storage device to store and mange the persistentdata.

FIG. 4 is a flow diagram illustrating a control flow of the serverdevice (e.g., a server device 1010 in FIG. 2) for ordering, customizingand reselling an object. At step 3000, the server device waits an inputfrom a client device (e.g., a client device 1030 in FIG. 2) which isused for a customer (who wants to purchase an instance of an object)and/or is used for a seller (who wants to sell an instance of the objectthrough the server device). When the server device receives an inputfrom the client device, at step 3010, the server device evaluateswhether the input is a request for an object order form (e.g., an objectorder form 120 in FIG. 1). If the input is the request of the objectorder form, at step 3020, the server device invokes the object orderform handler 2050 to generate the object order form and to send theobject order form to the client device (the client device requested theobject order form). Then, the server device returns to the step 3000 andwaits another input from a client device.

When the input (the input evaluated at the step 3010) is not the requestof the object order form, at step 3030, the server device evaluateswhether the input is an order of an object (e.g., a completed objectorder from a client device). If the input is the order of the object, atstep 3040, the object order handler 2060 is invoked to process (e.g.,parsing, analyzing) the order of the object, acknowledge a receipt ofthe order to the client device (client device which sent the order) andto send the order to a seller of the object. Then, the server devicereturns to the step 3000 and waits another input from a client device.

When the input (the input evaluated at step 3030) is not the order ofthe object, at step 3050, the server device evaluates whether the inputis a request to view objects. If the input is the request to viewobjects, at step 3060, the server device invokes the view objectshandler 2070 to provide the objects to the client device (client devicethat requested viewing objects) with a visibly identifiable form (e.g.,a web page with a mark-up on orderable objects, a photo catalogincluding objects along with objectIDs and sellerIDs). Then, the serverdevice returns to the step 3000 and waits another input from a clientdevice.

When the input (the input evaluated at step 3050) is not the request ofviewing objects, at step 3070, the server device evaluates whether theinput is a request of a reseller form. If the input is the request ofthe reseller form, at step 3080, the server device invokes the (request)reseller form handler 2080 to generate the reseller form (e.g., byretrieving the reseller form from a database associated with an objectfor which the request of the reseller form is submitted to the serverdevice) and to provide the reseller form to the client device (clientdevice that sent the request of the reseller form to the server device).Then, the server device returns to the step 3000 and waits another inputfrom a client device.

When the input (the input evaluated at step 3070) is not the request ofthe reseller form, at step 3090, the server device evaluates whether theinput is a request to be a reseller (e.g., a completed reseller form).If the input is the request to be the reseller, at step 3100, the serverdevice invokes the (request to be) reseller handler 2090 to forward therequest to be the reseller to an original seller. Then, the serverdevice returns to the step 3000 and waits another input from a clientdevice.

When the input (the input evaluated at step 3090) is not the request tobe the reseller, at step 3110, the server device evaluates whether theinput is a determination of the request to be the reseller from theoriginal seller. If the input is the determination of the request, atstep 3120, the server device invokes the reseller permission handler2100 to store or set the determination in a database associated with theoriginal seller, the client device (client device which sent the requestto be the reseller) and/or a corresponding object. After storing thedetermination in the database, the reseller permission handler 2100sends the determination to the client device. Then, the server devicereturns to the step 3000 and waits another input from a client device.

When the input (the input evaluated at step 3110) is not thedetermination of the request to be the reseller, at step 3130, theserver device evaluates whether the input is a request of adding anobject in a database. If the input is the request of adding the objectin the database, at step 3140, the server device invokes the add objecthandler 2110 to add the object in the database associated with theclient device (client device that requested adding an object in adatabase). Then, the server device returns to the step 3000 and waitsanother input from a client device. When the input (the input evaluatedat step 3130) is not the request of adding the object in the database,the server device returns to the step 3000 and waits an input from aclient device.

FIG. 5 is a flow diagram illustrating a control flow of the object orderhandler 2060 (i.e., a handler responsible for processing an order of anobject) in one embodiment of the present invention. When an order of anobject is received at the server device (e.g., a server device 1010 inFIG. 2), at step 4000, the object order handler 2060 sends the order toa seller associated with the object. At step 4100, the object orderhandler 2060 evaluates whether the object is a composite object or not.If the object is the composite object, the object order handler 2060generates each separate order for each subobject in the compositeobject. In a multi-threaded environment or multi-processing environment,there can be multiple object order handlers to process orders ofsubobjects. For example, an object order handler 2060 run in a thread orin a processing core (i.e., a processing unit in a multi-processor)processes an order of a subobject.

After each order of each subobject is processed by object orderhandler(s) 2060 or if the object (the object evaluated at step 4010) isnot a composite object, at step 4030, it is evaluated whether the sellerwho received the order at step 4000 is an original seller (i.e., aperson who has a proprietary right on the object) of the object. If theseller is the original seller, at step 4050, the object order handler2060 does not perform any action. Because the object order handler 2060already sent the order of the object to the original seller at step4000. If the seller is not the original seller, the object order handler2060 notifies the original seller that the object is being resold.

One embodiment of the present invention includes a logic or a module forautomatically charging an amount of money to a customer using a clientdevice based on a price of an object. After the object order handler2060 processes an order of an object, the object order handler 2060invokes the logic to assist the client device of the customer to be ableto pay the price of the object. In one embodiment, the object order form(e.g., an object order form 120 in FIG. 1) generated from the objectorder form handler 2050 includes the price of the object. Therefore, thecustomer recognizes the price of the object when completing the objectorder form. In one embodiment, the logic retrieves the price of theobject from a database associated with the object and then displays thatthe price of the object via GUI (Graphical User Interface). In oneembodiment, the logic accepts a number displayed on a credit card, adebit card, a traveler's check or a money order from the client deviceand then transfers the certain amount of money from an account (e.g., asaving account or checking account) of the customer to an account of aseller. In another embodiment, the logic allows the client device to paythe price of the object through an e-commerce business service (e.g.,PayPal®).

In one embodiment, an object can be a composite object comprisingsubobjects. The subobjects can be hardware, software, service, and/orcombinations of them. When a customer using a client device wants acustomization on the composite object, the object order form handler2050 generates an object order form that specifies availablecustomizations of subobjects in the composite object. The availablecustomizations are, but are not limited to, changing a subject with anew subobject, combining two subobjects into a subobject, changing acolor of a subobject, changing a software in a subobject, changing asoftware subobject with a hardware subobject, etc. In one embodiment,the customer specifies customizations of a composite object in an objectorder form. Then, the object order handler 2060 parses and analyzes theobject order form to identify which subobject needs to be customized andhow subobject(s) need to be customized. Then, the object order handler2060 calculates a price of the customizations of the composite objectand sends a message to the customer with the price of the customizationsand an expected delivery date of the customized composite object. Uponreceiving the message including the price, the customer using the clientdevice can cancel an order of the customized composite object within apredetermined period (e.g., within 1 day after receiving the message) orcan place the order of the customized object by paying the price of thecustomizations through the logic (i.e., the logic assisting a customerto pay the price of the customizations), an e-commerce business service(e.g., PayPal®) and/or a money transfer service from a bank.

When an order of customizations of a composite object is placed, theobject order handler 2060 first evaluates whether the customizations hasbeen performed before by searching a database associated with thecomposite object. If there is an instance of the composite object thathas been customized as requested from the customer, the instance of thecomposite object is delivered to the customer. When there is no instanceof the composite object that satisfies the customizations requested fromthe customer, the object order handler 2060 determines which subobjectneeds to be sent to a seller to be modified. If the parsing andanalyzing (parsing and analyzing performed before to calculate the priceof the customizations) identified there a customized instance of asubobject that satisfies a customization request from the customer, thecustomized instance of the subobject is retrieved from a databaseassociated with the subobject. If a customized instance of a subobjectthat satisfies a customization request from the customer is not found indatabase(s), the object order handler 2060 sends an order of thesubobject with a description of the customization to a seller associatedwith the subobject. Then, the seller creates or designs a customizedinstance of the subobject. After creating or designing the customizedinstance of the subobject, the seller sends the customized instance ofthe subobject to the server device.

When the server device receives customized instance(s) of subobject(s),the add object handler 2110 adds the customized instances of thesubobjects to database(s) associated with the subobjects and notifiesother handlers 2050-2100 that the customized instances of the subobjectsare entered into databases. After receiving the notice from the addobject handler 2110, the object order handler 2060 retrieves customizedinstances of the subobjects modified based on the specifiedcustomizations from the customer using the client device. When allnecessary instances of subobjects (e.g., customized or uncustomizedsubobjects) are retrieved from database(s), the object order handler2060 sends all the necessary instances of the subobjects to a composerassociated with the composite object. Upon receiving all the instancesof the subobjects, the composer combines the instances based on thespecified customizations from the customer using the client device. Whencompleting combing all the necessary instances of the subobjects tocreate a customized instance of the composite object, the composer sendsthe customized instance of the composite object to the server device.Then, the add object handler 2110 adds the customized instance of thecomposite object made of the all the necessary instances of thesubobjects into a database associated with the composite object andnotifies other handlers that the customized instance of the compositeobject is entered to the database. Upon receiving the notifying, theobject order handler 2060 retrieves the customized instance of thecomposite object from the database and sends the customized instance ofthe composite object to the customer using the client device.

Although the preferred embodiments of the present invention have beendescribed in detail, it should be understood that various changes andsubstitutions can be made therein without departing from spirit andscope of the inventions as defined by the appended claims. Variationsdescribed for the present invention can be realized in any combinationdesirable for each particular application. Thus particular limitations,and/or embodiment enhancements described herein, which may haveparticular advantages to a particular application need not be used forall applications. Also, not all limitations need be implemented inmethods, systems and/or apparatus including one or more concepts of thepresent invention.

The present invention can be realized in hardware, software, or acombination of hardware and software. A typical combination of hardwareand software could be a general purpose computer system with a computerprogram that, when being loaded and run, controls the computer systemsuch that it carries out the methods described herein. The presentinvention can also be embedded in a computer program product, whichcomprises all the features enabling the implementation of the methodsdescribed herein, and which—when loaded in a computer system—is able tocarry out these methods.

Computer program means or computer program in the present contextinclude any expression, in any language, code or notation, of a set ofinstructions intended to cause a system having an information processingcapability to perform a particular function either directly or afterconversion to another language, code or notation, and/or reproduction ina different material form.

Thus the invention includes an article of manufacture which comprises acomputer usable medium having computer readable program code meansembodied therein for causing a function described above. The computerreadable program code means in the article of manufacture comprisescomputer readable program code means for causing a computer to effectthe steps of a method of this invention. Similarly, the presentinvention may be implemented as a computer program product comprising acomputer usable medium having computer readable program code meansembodied therein for causing a function described above. The computerreadable program code means in the computer program product comprisingcomputer readable program code means for causing a computer to effectone or more functions of this invention. Furthermore, the presentinvention may be implemented as a program storage device readable bymachine, tangibly embodying a program of instructions run by the machineto perform method steps for causing one or more functions of thisinvention. In addition, the present invention includes a method ofdeploying a computer program product including a program of instructionsin a computer readable medium. The program of instructions is run by aprocessor.

It is noted that the foregoing has outlined some of the more pertinentobjects and embodiments of the present invention. This invention may beused for many applications. Thus, although the description is made forparticular arrangements and methods, the intent and concept of theinvention is suitable and applicable to other arrangements andapplications. It will be clear to those skilled in the art thatmodifications to the disclosed embodiments can be effected withoutdeparting from the spirit and scope of the invention. The describedembodiments ought to be construed to be merely illustrative of some ofthe more prominent features and applications of the invention. Otherbeneficial results can be realized by applying the disclosed inventionin a different manner or modifying the invention in ways known to thosefamiliar with the art.

1. A computer-implemented server device for reselling and customizing anobject in a client-server environment including a plurality of clientdevices comprising: a computer-implemented reseller form handler forreceiving from a client device a request of a reseller formcorresponding to the object, generating the reseller form correspondingto the object and providing the reseller form to the client device; acomputer-implemented reseller handler for receiving a request to be areseller from the client device that completed the reseller form andforwarding the request to be the reseller to an original seller; and acomputer-implemented reseller permission handler for receiving adetermination of the request to be the reseller from the originalseller, storing the determination in a database and sending thedetermination to the client device, wherein if the determinationindicates an approval of the request to be the reseller, a user of theclient device is able to resell the object to other users at otherclient devices.
 2. The computer-implemented server device for resellingand customizing according to claim 1, further comprising: acomputer-implemented view objects handler for receiving a request ofviewing the object from a client device, finding the object on a webpage, modifying the web page by adding a mark-up to indicate the objectcan be resold and sending the modified web page to the client device; acomputer-implemented object order form handler for receiving a requestof an object order form associated with the object in the modified webpage from the client device, generating the object order form of theobject and providing the object order form of the object to the clientdevice; and a computer-implemented object order handler for receiving anorder of the object from the client device that completed the objectorder form of the object and sending the order of the object to aseller.
 3. The computer-implemented server device for reselling andcustomizing according to claim 2, wherein the object order formspecifies customizations of the object in the modified web page.
 4. Thecomputer-implemented server device for reselling and customizingaccording to claim 2, wherein the object order form is provided to theclient device via one or more of: a web site, an email, a phone call, afax, an instant messaging, a postal mail and a carrier service.
 5. Thecomputer-implemented server device for reselling and customizingaccording to claim 2, wherein the object order form includes informationof the seller, information of the user of the client device andinformation of the object.
 6. The computer-implemented server device forreselling and customizing according to claim 2, wherein the object orderform is associated with one or more of: a template of the object, anowner of the object, a price of the object, other instances of theobject and a version of the object.
 7. The computer-implemented serverdevice for reselling and customizing according to claim 6, furthercomprising: means for automatically charging an amount of money to theclient device based on the price of the object.
 8. Thecomputer-implemented server device for reselling and customizingaccording to claim 2, wherein the object comprises one or moresubobjects.
 9. The computer-implemented server device for reselling andcustomizing according to claim 8, wherein the object order formspecifies customizations of the one or more of subobjects.
 10. Thecomputer-implemented server device for reselling and customizingaccording to claim 8, further comprising: means for retrieving instancesof the subobjects modified based on the specified customizations; andmeans for sending the an instance of the object made of the instances ofthe subobjects to the client device.
 11. The computer-implemented serverdevice for reselling and customizing according to claim 1, wherein theobject is one or more of: software, hardware and a service.
 12. Thecomputer-implemented server device for reselling and customizingaccording to claim 1, wherein the object include a unique ID.
 13. Thecomputer-implemented server device according to claim 2, wherein theobject includes one or more subobjects, and the completed object orderform specifies customizations of the one or more subobjects in theobject, and the computer-implemented server device comprises: thecomputer-implemented object order handler determining which subobjectneeds to be customized and how the subobject is customized, based on thecompleted object order form; the computer-implemented object orderhandler calculating cost of a customization of each subobject inresponse to determining that which subobject needs to be customized andhow the subobject is customized; the computer-implemented object orderhandler determining cost of a customization of the object, based on acustomization cost of each subobject; and the computer-implementedobject order handler informing the client of the determined cost of thecustomization of the object and an expect delivery date of thecustomized object.
 14. The computer-implemented server device accordingto claim 13, wherein if there exist, in a database, the one or moresubobjects that satisfy the specified customizations, the one or moresubobjects are retrieved from the database.
 15. The computer-implementedserver device, according to claim 14, if there exists in the database nocustomized subobject that satisfies the specified customizations, thecomputer-implemented object order handler sends to the original selleran order of the one or more subjects with the specified customizations,the original seller creates or designs a customization of each of theone or more subobjects, and the original seller sends the one or morecustomized subobjects to the computer-implemented object order handler.